package com.wande.dataplatform.domain.bo;

import com.wande.common.mybatis.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

/**
 * 大屏设计业务对象
 *
 * @author wande
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class ScreenBo extends BaseEntity {

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 大屏名称
     */
    @NotBlank(message = "大屏名称不能为空")
    private String name;

    /**
     * 大屏描述
     */
    private String description;

    /**
     * 大屏类型: CUSTOM-自定义, TEMPLATE-模板
     */
    private String screenType;

    /**
     * 大屏宽度(px)
     */
    @NotNull(message = "大屏宽度不能为空")
    private Integer width;

    /**
     * 大屏高度(px)
     */
    @NotNull(message = "大屏高度不能为空")
    private Integer height;

    /**
     * 背景配置(JSON)
     */
    private String backgroundConfig;

    /**
     * 组件配置(JSON)
     */
    private String componentConfig;

    /**
     * 布局配置(JSON)
     */
    private String layoutConfig;

    /**
     * 数据源配置(JSON)
     */
    private String datasourceConfig;

    /**
     * 刷新间隔(秒)
     */
    private Integer refreshInterval;

    /**
     * 状态
     */
    private String status;

    /**
     * 所属项目ID
     */
    private Long projectId;
}
